package cn.stylefeng.guns.modular.business.frequency.transportsign.service;

import cn.stylefeng.guns.modular.business.frequency.orderlogistics.model.param.ErrorMsg;
import cn.stylefeng.guns.modular.business.frequency.ordersub.model.param.OrderDTO;
import cn.stylefeng.guns.modular.business.frequency.ordersub.model.result.PkgOrderSign;
import cn.stylefeng.guns.modular.business.frequency.statistics.OrderSignVO;
import cn.stylefeng.guns.modular.business.frequency.transportsign.entity.TransportSign;
import cn.stylefeng.guns.modular.business.frequency.transportsign.model.param.DeliverySignVO;
import cn.stylefeng.guns.modular.business.frequency.transportsign.model.param.SignRecordDTO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 运单签收记录表 服务类
 *
 * @author yujie
 * @date 2023/05/09 17:15
 */
public interface TransportSignService extends IService<TransportSign> {

    /**
     * 签收记录列表
     */
    Page<PkgOrderSign> getSignRecord(SignRecordDTO orderDTO);

    /**
     * 待签收列表
     */
    Page<OrderSignVO> getWaitSignOrderList(OrderDTO orderDTO);

    /**
     * 批量签收 校验
     */
    boolean checkMultiSign(DeliverySignVO deliverySignVO, ErrorMsg errorMsg);

    /**
     * 批量签收
     */
    Integer multiSign(DeliverySignVO deliverySignVO);

    /**
     * 签收修改 校验
     */
    boolean checkSignUpdate(TransportSign transportSign, ErrorMsg errorMsg);

    /**
     * 签收修改
     */
    void updateSign(TransportSign transportSign);


    void reMultiSign(Long id);

    void getExportSignRecord(SignRecordDTO orderDTO);
}